使用Spyglass Power进行早期RTL功耗探索以优化设计功耗
📑 目录
- 1. 
- 2. **摘要**
- 3. **目录**
- 4. **1. 引言——为什么需要在RTL阶段进行功耗探索?**
- 5. 
- 6. 
- 7. 
- 8. 
- 9. 
- 10. **4. 结论**
- 11. **5. 参考文献**
使用Spyglass Power进行早期RTL功耗探索以优化设计功耗
会议: SNUG 2015
作者: Jim Chang (Vatics Technologies), Andrew Ku (Synopsys Taiwan)
页数: 11
源文件: SNUG_TPC_LowPower_Chang_Early_RTL_Power_Exploration_for_Design_Power_Optimization_paper.pdf
Page 1
使用Spyglass Power进行早期RTL功耗探索以优化设计功耗
Jim Chang, Andrew Ku
Vatics Technologies, Synopsys Taiwan
www.imgtec.com, www.synopsys.com
Page 2
摘要
如何在RTL阶段优化功耗现在是一个巨大的挑战。设计人员总是抱怨没有好的方法或流程在RTL 寄存器传输级阶段优化功耗。在本文中,我们提出一个旨在RTL阶段优化功耗的流程。设计师可以在此流程中轻松发现粗粒度ICG 集成时钟门控的功耗Bug和细粒度ICG的功耗Bug。此外,修复功耗Bug的修改工作量很低,验证工作量也很低。功耗节省值为19mw,占总功耗的14.8%。
Page 3
目录
1. 引言——为什么需要在RTL阶段进行功耗探索? 1.1 为什么需要在RTL阶段进行功耗探索? 1.2 在RTL阶段进行功耗探索的挑战 2. 使用Spyglass Power进行功耗探索 2.1 如何在Spyglass Power中进行功耗估计? 2.2 如何在Spyglass Power中进行功耗探索? 3. Vatics Technology案例研究 3.1 从哪里开始? 3.2 如何使用Spyglass Power进行功耗探索? 3.3 结果与客户收益 4. 结论与下一步 5. 参考文献
图表
图1:在层次浏览器和寄存器视图中识别有问题的模块 图2:在层次浏览器和寄存器视图中识别有问题的模块 图3:寄存器视图中的详细信息 图4:通过审查Q/CP vs 时钟效率矩阵找到功耗Bug 图5:用户案例中通过基于功耗的分析识别有问题的模块 图6:用户案例中通过审查Q/CP vs时钟效率矩阵找到功耗Bug
Page 4
1. 引言——为什么需要在RTL阶段进行功耗探索?
1.1 为什么需要在RTL阶段进行功耗探索?
当苹果智能手机发布后,智能手机对人类变得越来越重要。尽管智能手机改变了人们的生活并给我们带来了许多便利,但人们总是抱怨智能手机的功耗。这就是为什么智能手机的功耗将成为智能手机制造商和消费者的关键因素。此外,IoT 物联网和AI技术越来越流行,功耗将成为决定IoT设备是否能被消费者接受的关键因素。另外,云计算 Cloud Computing和数据中心消耗的电力占全球总消耗的1-2%。这些就是为什么我们需要降低芯片功耗的原因。
传统上,设计人员总是在网表阶段进行功耗估计并获得时钟门控 Clock Gating比例和时钟门控效率。但当设计人员发现功耗数据超出规格或时钟门控比例或时钟门控效率较低时,在网表阶段很难修改架构或RTL代码。此外,设计人员很难在网表阶段找到为什么某个模块或寄存器中时钟门控比例或时钟门控效率低的原因。这就是为什么我们要在RTL 寄存器传输级阶段进行功耗估计和功耗探索。如果我们能在RTL阶段获得设计的功耗数据,我们就可以决定如何将设计划分为硬件部分和软件部分。此外,我们还可以为SoC芯片设计功耗优化的架构。我们还可以根据RTL阶段生成的功耗数据对粗粒度ICG单元的功耗Bug和细粒度ICG单元的功耗Bug进行RTL修改以降低功耗。在RTL阶段进行功耗探索 Power Exploration有一些优势,例如更高的生产率、更低的仿真向量生成时间和设计人员更易调试。因此,我们需要在RTL阶段进行功耗探索。
1.2 在RTL阶段进行功耗探索的挑战
在RTL阶段,如果我们能获得设计的功耗数据、时钟门控比例和时钟门控 Clock Gating效率,我们要么可以改变架构,要么修改RTL代码以降低功耗。在RTL阶段修改设计和验证设计的工作量将少于在网表阶段的工作量。在RTL阶段进行功耗探索的挑战之一是需要一个工具和方法论,能够帮助设计人员轻松进行功耗估计并审查设计的时钟门控比例和时钟门控效率。然后,设计人员可以根据工具提供的指导或功耗数据信息修改RTL代码或更改架构以优化功耗。SpyGlass Power工具提供了大量的功耗信息,例如每个模块的总功耗数据、漏电功耗、内部功耗和开关功耗 Switching Power。此外,Spyglass Power工具还提供每个模块和每个寄存器的时钟门控比例和时钟门控效率数据。Spyglass Power工具的使用非常简单。图形用户界面也非常用户友好。设计人员可以非常快速地学习和使用Spyglass Power工具。最终,设计人员可以使用Spyglass Power工具在RTL阶段优化功耗。
Page 5
2. 使用Spyglass Power进行功耗探索
2.1 如何在Spyglass Power中进行功耗估计?
SpyGlass Power进行功耗估计的输入是约束文件、RTL代码、库文件和仿真波形。Spyglass Power将在第一步执行快速综合和技术映射。在这一步中,Spyglass Power将在数据路径中虚拟插入数据缓冲器,在时钟路径中虚拟插入时钟缓冲器。然后,Spyglass Power将基于综合结果和仿真数据计算功耗。
2.2 如何在Spyglass Power中进行功耗探索?
2.2.1 通过基于功耗的分析识别有问题的模块
在识别出有问题的模块后,我们可以使用功耗、活动和结构数据进行权衡。
1. 我们应该查看具有低时钟门控比例、低时钟门控效率或低寄存器活动性的模块。 2. 对于时钟门控效率相当的模块,我们给予具有最高动态功耗 Dynamic Power的模块更高优先级。 3. 对于时钟门控效率、动态功耗相当的模块,我们给予具有最高时序和时钟功耗的模块更高优先级。 4. 对于时钟门控效率、动态功耗、时序和内部功耗相当的模块,我们给予具有低平均Q/P的模块更高优先级。
2.2.2 打开寄存器视图进行基于功耗的分析
在识别出有问题的模块后,用户可以在GUI模式下打开寄存器视图或在批处理模式下打开spyglass_report/power_explorer/RegisterProfiling.csv文件以按寄存器进行功耗分析。用户可以使用寄存器视图找到具有最高改进潜力的寄存器。
图1:在层次浏览器和寄存器视图中识别有问题的模块
Page 6
寄存器视图提供的寄存器活动数据:
1. 活动详情列包含4个子列:驱动时钟活动、寄存器时钟引脚活动、寄存器Q引脚活动和寄存器D引脚活动。 2. 效率列包含Q/CP指标和时钟门控效率。 3. Q/CP vs 时钟门控效率矩阵(可通过寄存器视图的直方图按钮访问)
图2:在层次浏览器和寄存器视图中识别有问题的模块
寄存器视图提供的寄存器功耗数据:
1. 寄存器功耗包含3个子列:漏电功耗、内部功耗和开关功耗。 2. 门控功耗包含2个子列,提及门控前后的功耗。
图3:寄存器视图中的详细信息
Page 7
2.2.3 通过审查Q/CP vs 时钟效率矩阵找到功耗Bug
用户可以打开Q/CP vs时钟效率矩阵,找到具有大量寄存器的模块,这些寄存器具有低Q/CP和低时钟门控效率。在下面的案例中,该模块是识别功率Bug场景的一个良好示例,即寄存器数据没有改变,但寄存器的CP引脚仍在翻转。
1. 用户可以对寄存器按高位宽、高驱动时钟输入频率和低时钟门控效率、高动态功耗和最高门控后功耗进行排序。 2. 用户可以使用Q/CP数据找到数据输入不翻转但CP引脚在翻转的寄存器。这是一个功耗Bug。用户应在RTL阶段修复此功耗Bug以降低功耗。 3. 最后,用户可以使用脚本强制参考综合工具不对高Q的寄存器进行时钟门控以降低更多功耗。
图4:通过审查Q/CP vs 时钟效率矩阵找到功耗Bug
Page 8
3. Vatics Technology案例研究
在Vatics Technology的项目中采用了SpyGlass Power的功耗探索。设计是MPEG编码解码器模块。
3.1 从哪里开始?
首先,客户需要准备MPEG编码解码器设计的RTL文件列表、SDC 时序约束约束、库文件和仿真数据。然后用户可以使用Spyglass Power工具基于RTL文件、库文件和SDC约束进行综合。完成综合后,Spyglass Power工具将使用仿真波形获取设计中信号的活动性,然后计算功耗数据。用户只需运行power profiling目标即可获得设计的功耗数据、时钟门控比例和时钟门控效率。此外,用户还可以获得每个寄存器的Q/CP信息。
3.2 如何使用Spyglass Power进行功耗探索?
3.2.1 通过基于功耗的分析识别有问题的模块
用户运行power profiling目标以获得每个模块的功耗数据、时钟门控比例和时钟门控效率。然后用户打开GUI查找具有低时钟门控效率的模块。在图5中,Data模块的时钟门控效率为1.852%,总功耗为3.825mw。此模块中存在两种情况。在第一种情况下,输入数据始终在翻转,然后ICG单元的使能信号始终为高。此情况下没有功耗Bug。此模块中时钟门控效率低的原因是输入数据翻转率高。在第二种情况下,输入数据不翻转,但ICG单元的使能信号始终为高。此情况下存在功耗Bug。设计人员应修复此功耗Bug以降低功耗。
图5:用户案例中通过基于功耗的分析识别有问题的模块
Page 9
3.2.2 通过审查Q/CP vs 时钟效率矩阵找到功耗Bug
如何在设计中找到粗粒度或细粒度的功耗Bug?最佳方案是审查ROADF vs CG Eff. Matrix。在用户找到具有低时钟门控效率的模块后,他们可以打开ROADF vs CG Eff. Matrix以找出模块中是否存在功耗Bug。例如,在图6中,Data模块的时钟门控效率几乎为0%。在ROADF vs CG Eff. Matrix中,该模块中有1165个寄存器。1165个寄存器的时钟门控效率为0%,1165个寄存器的ROADF几乎接近0%。这意味着该模块在大多数时间处于空闲状态,但根时钟未被门控。这是一个粗粒度功耗Bug。用户应更改根ICG单元的行为以降低功耗。修复此功耗Bug的RTL代码修改工作量很低。此外,验证修复此功耗Bug的RTL更改的工作量也很低。采用此方案的总功耗节省值为19mw,功耗节省比例为总功耗的14.8%。
图6:用户案例中通过审查Q/CP vs时钟效率矩阵找到功耗Bug
3.3 结果与客户收益
通过在SpyGlass Power中进行功耗探索,总降低功耗为19mw,功耗节省比例为总功耗的14.8%。此外,修改RTL代码和验证修改后的RTL代码的工作量非常低。设计人员可以将修改后的RTL代码按时投入综合工具进行综合。客户认为Spyglass Power为他们在RTL阶段优化功耗带来了巨大收益。
Page 10
4. 结论
功耗对SoC芯片变得越来越重要。如果我们想对SoC芯片进行功耗降低,我们需要在RTL阶段获得功耗数据、时钟门控比例和时钟门控效率。SpyGlass Power是一个可以在RTL阶段提供大量不同功耗数据、时钟门控比例和时钟门控效率的工具。用户可以使用这些信息来优化功耗。在Vatics公司,用户通过采用Spyglass Power工具找到功耗Bug并修改RTL代码。降低的功耗为19mw,功耗节省比例为总功耗的14.8%。我们相信Spyglass Power可以为用户在RTL阶段优化功耗带来许多收益。
Page 11
5. 参考文献
[1] SpyGlass_PowerEstimate_And_SpyGlass_PowerReduceMethodology.pdf
图片索引
本文共7张图片,存放于 SNUG_TPC_LowPower_Chang_Early_RTL_Power_Exploration_for_Design_Power_Optimization_paper_images/ 目录。
第5页:图1 在层次浏览器和寄存器视图中识别有问题的模块 第6页:图2 层次浏览器与寄存器视图、图3 寄存器视图详细信息 第7页:图4 通过审查Q/CP vs 时钟效率矩阵找到功耗Bug 第8页:图5 用户案例中识别有问题的模块 第9页:图6 用户案例中审查Q/CP vs时钟效率矩阵找到功耗Bug